[アップデート] Amazon Bedrock のオンデマンド基礎モデル/推論プロファイルがコスト配分タグをサポートしました
こんにちは!AWS 事業本部コンサルティング部のたかくに(@takakuni_)です。
Amazon Bedrock のオンデマンド基礎モデル/推論プロファイルがコスト配分タグをサポートしました。
実はアップデートが発表される数日前に API Changes で DeleteInferenceProfile
, CreateInferenceProfile
API がサポートし、「ついにカスタムの推論プロファイルのサポートか!?」と 1 人で興奮していました。
ですが、 CreateInferenceProfile
では modelSource
の部分が 1 つしか選択できず、思っていたものと違うなと思い、検証を止めていたためやっと謎が解けました。
何が嬉しいのか
今まで、オンデマンドで利用可能な基礎モデルや推論プロファイルに関しては、コスト配分タグがサポートされていませんでした。(AWS 側で定義したリソースのため、タグをつけることができませんでした。)
今回のアップデートで、AWS 側で定義した特定のモデルや、推論プロファイルを、ユーザー管理の推論プロファイル(以後、アプリケーション推論プロファイル)としてコピー可能になったため、タグ付けできるようになりました。
図にすると、以下のイメージです。
なお、この機能は東京リージョンでも利用可能です。やったね。
やってみる
実際にやってみるとイメージがしやすいと思います。今回は AWS CLI を利用してアプリケーション推論プロファイルを作成します。
執筆時点(2024 年 11 月 02 日)の CloudShell で利用される AWS CLI のバージョンは、 v2.18.16 だったため、v2.18.17 まで引き上げます。
[cloudshell-user@ip-10-132-94-204 ~]$ aws --version
aws-cli/2.18.16 Python/3.12.6 Linux/6.1.112-122.189.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
aws --version
AWS CLI のバージョンが、v2.18.17 以上に更新されていれば OK です。
[cloudshell-user@ip-10-132-84-179 ~]$ aws --version
aws-cli/2.19.1 Python/3.12.6 Linux/6.1.112-122.189.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023
東京リージョンでは執筆時点で、システム定義の推論プロファイルがサポートしていないため、今回はベースモデルをもとにアプリケーション推論プロファイルを作成してみます。
copyFrom
キーのバリューには、システム定義の推論プロファイルまたはベースモデルの ARN を入力します。
aws bedrock create-inference-profile --region 'ap-northeast-1' \
--inference-profile-name 'takakuni-bedrock-profile' \
--description 'takakuni-bedrock-profile' \
--model-source '{"copyFrom": "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"}' \
--tags '[{"key": "CostAllocateTag","value": "takakuni"}]'
アプリケーション推論プロファイルの ARN が返ってきていれば OK です。
[cloudshell-user@ip-10-132-84-179 ~]$ aws bedrock create-inference-profile --region 'ap-northeast-1' \
> --inference-profile-name 'takakuni-bedrock-profile' \
> --description 'takakuni-bedrock-profile' \
> --model-source '{"copyFrom": "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"}' \
> --tags '[{"key": "CostAllocateTag","value": "takakuni"}]'
{
"inferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/ps3m4z7fpz4r",
"status": "ACTIVE"
}
執筆時点では、マネジメントコンソール上には出てきませんでした。今後に期待ですね。作成した推論プロファイルを確認するには list-inference-profiles
で確認します。
推論プロファイルのタイプは APPLICATION
でフィルターします。
aws bedrock list-inference-profiles --region 'ap-northeast-1' \
--type-equals 'APPLICATION'
先ほど作成したアプリケーション推論プロファイルが返答されていますね。
[cloudshell-user@ip-10-132-84-179 ~]$ aws bedrock list-inference-profiles --region 'ap-northeast-1' \
> --type-equals 'APPLICATION'
{
"inferenceProfileSummaries": [
{
"inferenceProfileName": "takakuni-bedrock-profile",
"description": "takakuni-bedrock-profile",
"createdAt": "2024-11-02T07:29:09.225303+00:00",
"updatedAt": "2024-11-02T07:29:09.225303+00:00",
"inferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/ps3m4z7fpz4r",
"models": [
{
"modelArn": "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
}
],
"inferenceProfileId": "ps3m4z7fpz4r",
"status": "ACTIVE",
"type": "APPLICATION"
}
]
}
get-inference-profile
でアプリケーション推論プロファイルの詳細を確認できます。しかし、先ほど渡した付与したタグが見当たりませんね。
[cloudshell-user@ip-10-132-84-179 ~]$ INFERENCE_PROFILE_ARN=$(aws bedrock list-inference-profiles --region 'ap-northeast-1' --type-equals 'APPLICATION' --query inferenceProfileSummaries[0].inferenceProfileArn --output text)
[cloudshell-user@ip-10-132-84-179 ~]$ aws bedrock get-inference-profile --inference-profile-identifier $INFERENCE_PROFILE_ARN
{
"inferenceProfileName": "takakuni-bedrock-profile",
"description": "takakuni-bedrock-profile",
"createdAt": "2024-11-02T07:29:09.225303+00:00",
"updatedAt": "2024-11-02T07:29:09.225303+00:00",
"inferenceProfileArn": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/ps3m4z7fpz4r",
"models": [
{
"modelArn": "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
}
],
"inferenceProfileId": "ps3m4z7fpz4r",
"status": "ACTIVE",
"type": "APPLICATION"
}
CLI の戻り値を確認すると tag は返ってこないようでした。
というわけで、リソースグループタグ付け API で確認してみます。
aws resourcegroupstaggingapi get-resources --tag-filters Key=CostAllocateTag,Values=takakuni --region ap-northeast-1
無事、アプリケーション推論プロファイルが検索に引っかかりましたね。(めでたしめでたし)
[cloudshell-user@ip-10-132-84-179 ~]$ aws resourcegroupstaggingapi get-resources --tag-filters Key=CostAllocateTag,Values=takakuni --region ap-northeast-1
{
"ResourceTagMappingList": [
{
"ResourceARN": "arn:aws:bedrock:ap-northeast-1:123456789012:application-inference-profile/ps3m4z7fpz4r",
"Tags": [
{
"Key": "CostAllocateTag",
"Value": "takakuni"
}
]
}
]
}
最後にアプリケーション推論プロファイルを利用してモデルの実行を行ってみます。
INFERENCE_PROFILE_ARN=$(aws bedrock list-inference-profiles --region 'ap-northeast-1' \
--type-equals 'APPLICATION' \
--query inferenceProfileSummaries[0].inferenceProfileArn \
--output text)
aws bedrock-runtime converse --region ap-northeast-1 \
--model-id $INFERENCE_PROFILE_ARN \
--messages '[{"role": "user", "content": [{"text": "こんにちは!"}]}]'
問題なく返信返ってきていますね。素晴らしい
[cloudshell-user@ip-10-132-84-179 ~]$ INFERENCE_PROFILE_ARN=$(aws bedrock list-inference-profiles --region 'ap-northeast-1' \
> --type-equals 'APPLICATION' \
> --query inferenceProfileSummaries[0].inferenceProfileArn \
> --output text)
[cloudshell-user@ip-10-132-84-179 ~]$ aws bedrock-runtime converse --region ap-northeast-1 \
> --model-id $INFERENCE_PROFILE_ARN \
> --messages '[{"role": "user", "content": [{"text": "こんにちは!"}]}]'
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "こんにちは!お元気ですか?何かお手伝いできることはありますか?お気軽にお尋ねください。"
}
]
}
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 13,
"outputTokens": 42,
"totalTokens": 55
},
"metrics": {
"latencyMs": 1163
}
}
コスト配分タグ周り
参考
まとめ
以上、「Amazon Bedrock のオンデマンド基礎モデル/推論プロファイルがコスト配分タグをサポートしました。」でした。
コスト配分タグが使えないことで、プロジェクトごとに新しく AWS アカウントを作成、アカウントを跨いで API 実行していた方(がもしいれば)、神アップデートなのではないでしょうか。
個人的には、今後アプリケーション推論プロファイルに追加できるモデル/リージョンなどのパターンが増えていく展望を期待しています。
このブログがどなたかの参考になれば幸いです。AWS 事業本部コンサルティング部のたかくに(@takakuni_)でした!